package com.cskaoyan.javase.basic._4operator._4ternary;

/**
 * @description: 三目运算符
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 * 三目运算符: 目是元的意思,表示能够连接三个操作数的运算符,就是三目运算符
 * 语法:
 *      (条件表达式)?表达式1:表达式2
 *
 * 条件表达式也叫布尔表达式,结果一定是布尔类型.如果结果是true,执行表达式1,相反执行表达式2
 *
 * 三目运算符组成的表达式,最终一定要执行某个表达式.所以三目运算符的最大特点是一定有结果
 * 这是三目运算符的优点,同时也是它的缺点
 *
 * 比如我不想表达式输出结果,这时三目运算符就做不到了,可以使用if...else替代它
 * 实际开发中,if...else完成可以替代三目运算符
 * 但是三目运算符代码更加简洁,更加优雅,并且实际测试来说三目运算符要比if效率稍微高一点
 * 所以在能够使用三目运算符时,尽量使用三目运算符
 *
 */
public class Demo {
    public static void main(String[] args) {
        /*//求两个数的最大值,并接收它
        int a = 10;
        int b = 20;
        int max;
        max = (a > b) ? a : b;
        System.out.println(max);

        //求两个数的最大值,并控制台输出它,三目运算符做不到了.这时可以考虑使用if..else代替
        //(a > b) ? System.out.println(a): b;
        if (a > b){
            System.out.println(a);
        }else {
            System.out.println(b);
        }*/

        //求三个数的最大值
        int a = 100;
        int b = 20;
        int c = 30;
        int max;
        //代码简洁优雅的同时,可读性肯定要下降,所以这就是一个选择的问题
        max = (a > b) ? (a > c) ? a : c : (b > c) ? b : c;
        System.out.println(max);
    }
}
